package abstractFactory;

/**
 * 抽象工厂模式演示类
 */
public class AbstractFactoryDemo {
    public static void main(String[] args) {
        // 使用高端工厂生产产品
        System.out.println("=== 使用高端工厂生产产品 ===");
        AbstractFactory highEndFactory = new HighEndFactory();
        
        // 创建高端电子产品和家具
        ElectronicProduct computer = highEndFactory.createElectronicProduct();
        Furniture table = highEndFactory.createFurniture();
        
        // 使用高端产品
        computer.powerOn();
        computer.powerOff();
        table.assemble();
        table.use();
        
        System.out.println("\n=== 使用普通工厂生产产品 ===");
        // 使用普通工厂生产产品
        AbstractFactory lowEndFactory = new LowEndFactory();
        
        // 创建普通电子产品和家具
        ElectronicProduct phone = lowEndFactory.createElectronicProduct();
        Furniture chair = lowEndFactory.createFurniture();
        
        // 使用普通产品
        phone.powerOn();
        phone.powerOff();
        chair.assemble();
        chair.use();
    }
}